nethackfandomcom-20200214-history
Source:NetHack 3.0.0/extern.h
Below is the full text to extern.h from the source code of NetHack 3.0.0. To link to a particular line, write [[NetHack 3.0.0/extern.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)extern.h 3.0 88/10/18 */ 2. /* Copyright © Steve Creps, 1988. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef EXTERN_H 6. #define EXTERN_H 7. 8. #if defined(MSDOS) && !defined(__TURBOC__) 9. /* MSC include files do not contain "extern" keyword */ 10. #define E 11. #else 12. #define E extern 13. #endif 14. 15. /* ### alloc.c ### */ 16. 17. #ifndef __TURBOC__ 18. E long *alloc P((unsigned int)); 19. #endif 20. 21. /* ### apply.c ### */ 22. 23. E int doapply(); 24. E int holetime(); 25. E void dighole(); 26. E int dorub(); 27. E int dojump(); 28. #ifdef WALKIES 29. E int number_leashed(); 30. E void o_unleash P((struct obj *)); 31. E void m_unleash P((struct monst *)); 32. E void unleash_all(); 33. E boolean next_to_u(); 34. E struct obj *get_mleash P((struct monst *)); 35. E void check_leash P((xchar,xchar)); 36. #endif 37. E boolean um_dist P((xchar,xchar,xchar)); 38. 39. /* ### artifact.c ### */ 40. 41. #ifdef NAMED_ITEMS 42. E void mkartifact P((struct obj **)); 43. E boolean is_artifact P((struct obj *)); 44. E boolean spec_ability P((struct obj *,unsigned)); 45. E int restr_name P((struct obj *,char *)); 46. # if defined(THEOLOGY) && defined(ALTARS) 47. E struct obj *mk_aligned_artifact P((int)); 48. # endif 49. E int defends P((int,struct obj *)); 50. E int spec_abon P((struct obj *,struct permonst *)); 51. E int spec_dbon P((struct obj *,struct permonst *,int)); 52. #endif 53. 54. /* ### attrib.c ### */ 55. 56. E void adjattrib P((int,int,boolean)); 57. E void change_luck P((schar)); 58. E int stone_luck P((boolean)); 59. E void gainstr P((struct obj *,int)); 60. E void losestr P((int)); 61. E void restore_attrib(); 62. E void init_attr P((int)); 63. #ifdef POLYSELF 64. E void redist_attr(); 65. #endif 66. E void adjabil P((int)); 67. E int newhp(); 68. E schar acurr(); 69. E void adjalign P((int)); 70. 71. /* ### bones.c ### */ 72. 73. E void savebones(); 74. E int getbones(); 75. E void name_file P((char *,int)); 76. 77. /* ### cmd.c ### */ 78. 79. E void set_occupation P((int(*)(),char *,int)); 80. #ifdef REDO 81. E char pgetchar(); 82. E void pushch P((char)); 83. E void savech P((char)); 84. #endif 85. E char unctrl P((char)); 86. E void rhack P((char *)); 87. E char lowc P((char)); 88. E void enlightenment(); 89. E int xytod P((schar,schar)); 90. E void dtoxy P((coord *,int)); 91. E int movecmd P((char)); 92. E int getdir P((boolean)); 93. E void confdir(); 94. E int isok P((int,int)); 95. E int doextlist(); 96. 97. /* ### dbridge.c ### */ 98. 99. E boolean is_pool P((int,int)); 100. #ifdef STRONGHOLD 101. E void initsym P((int,int)); 102. E int is_drawbridge_wall P((int, int)); 103. E boolean is_db_wall P((int, int)); 104. E boolean find_drawbridge P((int *, int*)); 105. E boolean create_drawbridge P((int, int, int, boolean)); 106. E void open_drawbridge P((int, int)); 107. E void close_drawbridge P((int, int)); 108. E void destroy_drawbridge P((int, int)); 109. #endif /* STRONGHOLD /**/ 110. 111. /* ### decl.c ### */ 112. 113. /* ### demon.c ### */ 114. 115. E void dsummon P((struct permonst *)); 116. E int demon_talk P((struct monst *)); 117. E long bribe P((struct monst *)); 118. E int dprince (); 119. E int dlord (); 120. E int ndemon (); 121. 122. /* ### do.c ### */ 123. 124. E int dodrop(); 125. E boolean flooreffects P((struct obj *,int,int)); 126. E void doaltarobj P((struct obj *)); 127. E boolean canletgo P((struct obj *,char *)); 128. E void dropx P((struct obj *)); 129. E void dropy P((struct obj *)); 130. E int doddrop(); 131. E int dodown(); 132. E int doup(); 133. E void goto_level P((int,boolean)); 134. E int donull(); 135. E int dowipe(); 136. E struct obj *splitobj P((struct obj *,int)); 137. E void set_wounded_legs P((long,int)); 138. E void heal_legs(); 139. 140. /* ### do_name.c ### */ 141. 142. E void getpos P((coord *,int,char *)); 143. E int do_mname(); 144. E struct obj *oname P((struct obj *,char *,int)); 145. E int ddocall(); 146. E void docall P((struct obj *)); 147. E char *x_monnam P((struct monst *,int)); 148. E char *lmonnam P((struct monst *)); 149. E char *mon_nam P((struct monst *)); 150. E char *Monnam P((struct monst *)); 151. E char *a_monnam P((struct monst *,char *)); 152. E char *Amonnam P((struct monst *,char *)); 153. E char *Xmonnam P((struct monst *)); 154. E char *defmonnam P((struct monst *)); 155. E char *rndmonnam(); 156. #ifdef REINCARNATION 157. E char *roguename(); 158. #endif 159. 160. /* ### do_wear.c ### */ 161. 162. E void off_msg P((struct obj *)); 163. E boolean is_helmet P((struct obj *)); 164. E boolean is_gloves P((struct obj *)); 165. E boolean is_boots P((struct obj *)); 166. E boolean is_cloak P((struct obj *)); 167. E boolean is_shield P((struct obj *)); 168. E void set_wear(); 169. E int Armor_off(); 170. E int Armor_gone(); 171. E int Helmet_off(); 172. E int Gloves_off(); 173. E int Boots_off(); 174. E int Cloak_off(); 175. E int Shield_off(); 176. E void Amulet_off(); 177. E void Ring_on P((struct obj *)); 178. E void Ring_off P((struct obj *)); 179. E void Ring_gone P((struct obj *)); 180. E void Blindf_on P((struct obj *)); 181. E void Blindf_off P((struct obj *)); 182. E int dotakeoff(); 183. E int doremring(); 184. E int cursed P((struct obj *)); 185. E int armoroff P((struct obj *)); 186. E int dowear(); 187. E int doputon(); 188. E void find_ac(); 189. E void glibr(); 190. E struct obj *some_armor(); 191. E void corrode_armor(); 192. E int doddoremarm(); 193. E void adj_abon P((struct obj *,schar)); 194. 195. /* ### dog.c ### */ 196. 197. E void initedog P((struct monst *)); 198. E void make_familiar P((struct obj *)); 199. E struct monst *makedog(); 200. E void losedogs(); 201. E void keepdogs(); 202. E void fall_down P((struct monst *,int)); 203. E int dogfood P((struct monst *,struct obj *)); 204. E int inroom P((xchar,xchar)); 205. E int tamedog P((struct monst *,struct obj *)); 206. 207. /* ### dogmove.c ### */ 208. 209. E int dog_move P((struct monst *,int)); 210. 211. /* ### dokick.c ### */ 212. 213. E boolean ghitm P((struct monst *,long)); 214. E boolean bad_kick_throw_pos P((xchar,xchar)); 215. E struct monst *ghit P((int,int,int)); 216. E int dokick(); 217. 218. /* ### dothrow.c ### */ 219. 220. E int dothrow(); 221. E int throwit P((struct obj *)); 222. E int thitmonst P((struct monst *,struct obj *)); 223. E int breaks P((struct obj *,boolean)); 224. 225. /* ### eat.c ### */ 226. 227. E void init_uhunger(); 228. E int Hear_again(); 229. E int doeat(); 230. E void gethungry(); 231. E void morehungry P((int)); 232. E void lesshungry P((int)); 233. E void newuhs P((boolean)); 234. E void vomit(); 235. E struct obj *floorfood P((char *,int)); 236. 237. /* ### end.c ### */ 238. 239. E int done1(); 240. E int done2(); 241. E void done_in_by P((struct monst *)); 242. E void panic P((char *,...)); 243. E void done P((char *)); 244. E void clearlocks(); 245. #ifdef NOSAVEONHANGUP 246. E void hangup(); 247. #endif 248. 249. /* ### engrave.c ### */ 250. 251. #ifdef ELBERETH 252. E int sengr_at P((char *,xchar,xchar)); 253. #endif 254. E void u_wipe_engr P((int)); 255. E void wipe_engr_at P((xchar,xchar,xchar)); 256. E void read_engr_at P((int,int)); 257. E void make_engr_at P((int,int,char *)); 258. E int freehand(); 259. E int doengrave(); 260. E void save_engravings P((int)); 261. E void rest_engravings P((int)); 262. 263. /* ### exper.c ### */ 264. 265. E long newuexp P((unsigned)); 266. E int experience P((struct monst *,int)); 267. E void more_experienced P((int,int)); 268. E void losexp(); 269. E void newexplevel(); 270. E void pluslvl(); 271. E long rndexp(); 272. 273. /* ### extralev.c ### */ 274. 275. #ifdef REINCARNATION 276. E void makeroguerooms(); 277. E void corr P((int,int)); 278. E void makerogueghost(); 279. #endif 280. 281. /* ### fountain.c ### */ 282. 283. #ifdef FOUNTAINS 284. E void dryup(); 285. E void drinkfountain(); 286. E void dipfountain P((struct obj *)); 287. #endif /* FOUNTAINS */ 288. #ifdef SINKS 289. E void drinksink(); 290. #endif 291. 292. /* ### getline.c ### */ 293. 294. E void getlin P((char *)); 295. E void getret(); 296. E void cgetret P((char *)); 297. E void xwaitforspace P((char *)); 298. E char *parse(); 299. E char readchar(); 300. #ifdef COM_COMPL 301. E void get_ext_cmd P((char *)); 302. #endif /* COM_COMPL */ 303. 304. /* ### hack.c ### */ 305. 306. E void unsee(); 307. E void seeoff P((int)); 308. E void movobj P((struct obj *,xchar,xchar)); 309. E boolean may_dig P((xchar,xchar)); 310. E void domove(); 311. E void spoteffects(); 312. E int dopickup(); 313. E void lookaround(); 314. E int monster_nearby(); 315. E int cansee P((xchar,xchar)); 316. E int sgn P((int)); 317. E void getcorners 318. P((xchar *,xchar *,xchar *,xchar *,xchar *,xchar *,xchar *,xchar *)); 319. E void setsee(); 320. E void nomul P((int)); 321. E void losehp P((int,char *)); 322. E int weight_cap(); 323. E int inv_weight(); 324. E int inv_cnt(); 325. E int little_to_big P((int)); 326. E int big_to_little P((int)); 327. #ifdef STUPID_CPP /* otherwise these functions are macros in hack.h */ 328. E char yn(); 329. E char ynq(); 330. E char ynaq(); 331. E char nyaq(); 332. E char *plur P((long)); 333. E void makeknown P((unsigned)); 334. #endif 335. 336. /* ### invent.c ### */ 337. 338. E struct obj *addinv P((struct obj *)); 339. E void useup P((struct obj *)); 340. E void freeinv P((struct obj *)); 341. E void delobj P((struct obj *)); 342. E void freeobj P((struct obj *)); 343. E void freegold P((struct gold *)); 344. E struct monst *m_at P((int,int)); 345. E struct obj *o_at P((int,int)); 346. E struct obj *sobj_at P((int,int,int)); 347. E int carried P((struct obj *)); 348. E struct obj *carrying P((int)); 349. E struct obj *o_on P((unsigned int,struct obj *)); 350. E struct gold *g_at P((int,int)); 351. E struct obj *getobj P((char *,char *)); 352. E int ggetobj P((char *,int(*)(),int)); 353. E int askchain P((struct obj *,int,char *,int,int(*)(),int(*)(),int,char *)); 354. E void prinv P((struct obj *)); 355. E int ddoinv(); 356. E void doinv P((char *)); 357. E int dotypeinv(); 358. E int dolook(); 359. E void stackobj P((struct obj *)); 360. E int doprgold(); 361. E int doprwep(); 362. E int doprarm(); 363. E int doprring(); 364. E int dopramulet(); 365. E int doprtool(); 366. E int digit P((char)); 367. E void useupf P((struct obj *)); 368. E char *let_to_name P((char)); 369. E void reassign(); 370. 371. /* ### ioctl.c ### */ 372. 373. #ifdef UNIX 374. E void getioctls(); 375. E void setioctls(); 376. #ifdef SUSPEND 377. E int dosuspend(); 378. #endif /* SUSPEND */ 379. #endif /* UNIX */ 380. 381. /* ### lock.c ### */ 382. 383. E int pick_lock P((struct obj *)); 384. E int doforce(); 385. E int boxlock P((struct obj *,struct obj *)); 386. E int doorlock P((struct obj *,int,int)); 387. E int doopen(); 388. E int doclose(); 389. 390. /* ### makemon.c ### */ 391. 392. E struct monst *makemon P((struct permonst *,int,int)); 393. E void enexto P((coord *,xchar,xchar)); 394. E int goodpos P((int,int)); 395. E void rloc P((struct monst *)); 396. E struct monst *mkmon_at P((char *,int,int)); 397. E void init_monstr(); 398. E struct permonst *rndmonst(); 399. E struct permonst *mkclass P((char)); 400. E int adj_lev P((struct permonst *)); 401. E struct permonst *grow_up P((struct monst *)); 402. E int mongets P((struct monst *,int)); 403. #ifdef REINCARNATION 404. E struct permonst *roguemon(); 405. #endif 406. #ifdef GOLEMS 407. E int golemhp P((int)); 408. #endif /* GOLEMS */ 409. E boolean peace_minded P((struct permonst *)); 410. E void set_malign P((struct monst *)); 411. E void set_mimic_sym P((struct monst *)); 412. 413. /* ### mcastu.c ### */ 414. 415. E int castmu P((struct monst *,struct attack *)); 416. E int buzzmu P((struct monst *,struct attack *)); 417. 418. /* ### mhitm.c ### */ 419. 420. E int fightm P((struct monst *)); 421. E int mattackm P((struct monst *,struct monst *)); 422. E int noattacks P((struct permonst *)); 423. 424. /* ### mhitu.c ### */ 425. 426. #ifdef POLYSELF 427. E boolean incompatible P((struct monst *)); 428. E struct monst *cloneu(); 429. #endif 430. E boolean is_nymph P((struct monst *)); 431. E boolean sp_melee P((struct monst *)); 432. E int mattacku P((struct monst *)); 433. E void mdamageu P((struct monst *,int)); 434. #ifdef SEDUCE 435. E void doseduce P((struct monst *)); 436. #endif 437. 438. /* ### mklev.c ### */ 439. 440. E int somex P((struct mkroom *)); 441. E int somey P((struct mkroom *)); 442. #ifdef ORACLE 443. E boolean place_oracle P((struct mkroom *,int *,int *,int *)); 444. #endif 445. E void mklev(); 446. E int okdoor P((xchar,xchar)); 447. E void dodoor P((int,int,struct mkroom *)); 448. E void mktrap P((int,int,struct mkroom *)); 449. E void mkfount P((int,struct mkroom *)); 450. 451. /* ### mkmaze.c ### */ 452. 453. #if defined(WALLIFIED_MAZE) || defined(STRONGHOLD) 454. E void wallification P((int,int,int,int,boolean)); 455. #endif 456. E void walkfrom P((int,int)); 457. E void makemaz(); 458. E void move P((int *,int *,int)); 459. E void mazexy P((coord *)); 460. E void bound_digging(); 461. 462. /* ### mkobj.c ### */ 463. 464. E struct obj *mkobj_at P((char,int,int)); 465. E struct obj *mksobj_at P((int,int,int)); 466. E struct obj *mkobj P((char,boolean)); 467. E int rndmonnum(); 468. E struct obj *mksobj P((int,boolean)); 469. E int letter P((int)); 470. E int weight P((struct obj *)); 471. E void mkgold P((long,int,int)); 472. E struct obj *mkcorpse_at P((struct permonst *,int,int)); 473. E struct obj *mk_tt_corpse P((int,int)); 474. E struct obj *mkstatue P((struct permonst *,int,int)); 475. E struct obj *mk_named_object P((int, struct permonst *,int,int,char *,int)); 476. #ifdef MEDUSA 477. E struct obj *mk_tt_statue P((int,int)); 478. #endif 479. E void bless P((struct obj *)); 480. E void curse P((struct obj *)); 481. E void blessorcurse P((struct obj *,int)); 482. E boolean is_flammable P((struct obj *)); 483. E boolean is_rustprone P((struct obj *)); 484. E void set_omask P((xchar,xchar)); 485. 486. /* ### mkroom.c ### */ 487. 488. E void mkroom P((int)); 489. E void shrine_pos P((int *, int*, struct mkroom *)); 490. E boolean nexttodoor P((int,int)); 491. E boolean has_dnstairs P((struct mkroom *)); 492. E boolean has_upstairs P((struct mkroom *)); 493. E int dist2 P((int,int,int,int)); 494. E struct permonst *courtmon(); 495. E int bcsign P((struct obj *)); 496. 497. /* ### mon.c ### */ 498. 499. E void movemon(); 500. E void meatgold P((struct monst *)); 501. E void meatobj P((struct monst *)); 502. E void mpickgold P((struct monst *)); 503. E void mpickgems P((struct monst *)); 504. E int curr_mon_load P((struct monst *)); 505. E int max_mon_load P((struct monst *)); 506. E boolean can_carry P((struct monst *,struct obj *)); 507. E void mpickstuff P((struct monst *,char *)); 508. E int mfndpos P((struct monst *,coord *,long *,long)); 509. E int dist P((int,int)); 510. E void poisontell P((int)); 511. E void poisoned P((char *,int,char *)); 512. E void mondead P((struct monst *)); 513. E void replmon P((struct monst *,struct monst *)); 514. E void relmon P((struct monst *)); 515. E void monfree P((struct monst *)); 516. E void unstuck P((struct monst *)); 517. E void killed P((struct monst *)); 518. E void xkilled P((struct monst *,int)); 519. E void kludge P((char *,char *,...)); 520. E void rescham(); 521. E void restartcham(); 522. E int newcham P((struct monst *,struct permonst *)); 523. E void mnexto P((struct monst *)); 524. E void mnearto P((struct monst *, xchar, xchar, boolean)); 525. E void setmangry P((struct monst *)); 526. E int disturb P((struct monst *)); 527. E void mondied P((struct monst *)); 528. E void mongone P((struct monst *)); 529. E void monstone P((struct monst *)); 530. #ifdef GOLEMS 531. E void golemeffects P((struct monst *, int, int)); 532. #endif /* GOLEMS */ 533. 534. /* ### mondata.c ### */ 535. 536. E boolean attacktype P((struct permonst *,int)); 537. E boolean resists_ston P((struct permonst *)); 538. E boolean resists_drli P((struct permonst *)); 539. E boolean ranged_attk P((struct permonst *)); 540. E boolean can_track P((struct permonst *)); 541. #ifdef POLYSELF 542. E boolean breakarm P((struct permonst *)); 543. E boolean sliparm P((struct permonst *)); 544. #endif 545. E boolean sticks P((struct permonst *)); 546. E boolean canseemon P((struct monst *)); 547. E boolean dmgtype P((struct permonst *,int)); 548. E int monsndx P((struct permonst *)); 549. E int name_to_mon P((char *)); 550. #ifdef POLYSELF 551. E boolean webmaker P((struct permonst *)); 552. #endif 553. E boolean is_female P((struct monst *)); 554. E int gender P((struct monst *)); 555. E boolean levl_follower P((struct monst *)); 556. E struct permonst *player_mon(); 557. 558. /* ### monmove.c ### */ 559. 560. E int dochugw P((struct monst *)); 561. E boolean onscary P((int,int,struct monst *)); 562. E int dochug P((struct monst *)); 563. E int m_move P((struct monst *,int)); 564. E void set_apparxy P((struct monst *)); 565. E boolean mdig_tunnel P((struct monst *)); 566. 567. /* ### monst.c ### */ 568. 569. /* ### msdos.c ### */ 570. 571. #ifdef MSDOS 572. E void flushout(); 573. E int tgetch(); 574. E int dosh(); 575. E long freediskspace P((char *)); 576. E long filesize P((char *)); 577. E void eraseall P((char *,char *)); 578. E void copybones P((int)); 579. E void playwoRAMdisk(); 580. E int saveDiskPrompt P((int)); 581. E void gameDiskPrompt(); 582. E void read_config_file(); 583. E void set_lock_and_bones(); 584. E void append_slash P((char *)); 585. E void getreturn P((char *)); 586. E void msmsg P((char *,...)); 587. E void chdrive P((char *)); 588. E void disable_ctrlP(); 589. E void enable_ctrlP(); 590. E FILE *fopenp P((char *,char *)); 591. E void msexit P((int)); 592. #endif /* MSDOS */ 593. 594. /* ### mthrowu.c ### */ 595. 596. E int thitu P((int,int,char *)); 597. E int thrwmu P((struct monst *)); 598. E int spitmu P((struct monst *)); 599. E int breamu P((struct monst *,struct attack *)); 600. E boolean linedup P((xchar,xchar,xchar,xchar)); 601. E boolean lined_up P((struct monst *)); 602. E struct obj *m_carrying P((struct monst *,int)); 603. E void m_useup P((struct monst *,struct obj *)); 604. 605. /* ### music.c ### */ 606. 607. #ifdef MUSIC 608. E int do_play_instrument P((struct obj *)); 609. #endif /* MUSIC /**/ 610. 611. /* ### o_init.c ### */ 612. 613. E int letindex P((char)); 614. E void init_objects(); 615. E void oinit(); 616. E void savenames P((int)); 617. E void restnames P((int)); 618. E int dodiscovered(); 619. 620. /* ### objnam.c ### */ 621. 622. E char *typename P((int)); 623. E char *distant_name P((struct obj *, char *(*)(struct obj *))); 624. E char *xname P((struct obj *)); 625. E char *doname P((struct obj *)); 626. E void setan P((char *,char *)); 627. E char *aobjnam P((struct obj *,char *)); 628. E char *Doname2 P((struct obj *)); 629. E void lcase P((char *)); 630. E char *makeplural P((char *)); 631. E struct obj *readobjnam P((char *)); 632. E boolean uses_known P((struct obj *)); 633. 634. /* ### options.c ### */ 635. 636. E void initoptions(); 637. E void parseoptions P((char *,boolean)); 638. E int doset(); 639. E int dotogglepickup(); 640. E void option_help(); 641. E int fruitadd P((char *)); 642. 643. /* ### pager.c ### */ 644. 645. E int dowhatis(); 646. E int dowhatdoes(); 647. E void set_whole_screen(); 648. #ifdef NEWS 649. E int readnews(); 650. #endif /* NEWS */ 651. E void set_pager P((int)); 652. E int page_line P((char *)); 653. E void cornline P((int,char *)); 654. E int dohelp(); 655. E int dohistory(); 656. E int page_file P((char *,boolean)); 657. #ifdef UNIX 658. #ifdef SHELL 659. E int dosh(); 660. #endif /* SHELL */ 661. E int child P((int)); 662. #endif /* UNIX */ 663. 664. /* ### pcmain.c ### */ 665. 666. #ifdef MSDOS 667. E int (*occupation)(); 668. E int (*afternmv)(); 669. E void askname(); 670. E void impossible P((char *,...)); 671. #ifdef CHDIR 672. E void chdirx P((char *,char)); 673. #endif /* CHDIR */ 674. E void stop_occupation(); 675. #endif /* MSDOS */ 676. 677. /* ### pctty.c ### */ 678. 679. #ifdef MSDOS 680. E void gettty(); 681. E void settty P((char *)); 682. E void error P((char *,...)); 683. #endif /* MSDOS */ 684. 685. /* ### pcunix.c ### */ 686. 687. #ifdef MSDOS 688. #ifndef TOS 689. E void setrandom(); 690. E int getyear(); 691. E char *getdate(); 692. E int phase_of_the_moon(); 693. E int night(); 694. E int midnight(); 695. E void gethdate P((char *)); 696. E int uptodate P((int)); 697. #endif /* TOS */ 698. E void regularize P((char *)); 699. #endif /* MSDOS */ 700. 701. /* ### pickup.c ### */ 702. 703. E void pickup P((int)); 704. E int doloot(); 705. E void get_all_from_box(); 706. E void use_container P((struct obj *, int)); 707. E void inc_cwt P((struct obj *, struct obj *)); 708. E void delete_contents P((struct obj *)); 709. E void dec_cwt P((struct obj *, struct obj *)); 710. 711. /* ### polyself.c ### */ 712. 713. #ifdef POLYSELF 714. E void polyself(); 715. E int polymon P((int)); 716. E void rehumanize(); 717. E int dobreathe(); 718. E int dospit(); 719. E int doremove(); 720. E int dospinweb(); 721. E int dosummon(); 722. E int doconfuse(); 723. E int dohide(); 724. #endif 725. E char *body_part P((int)); 726. E int poly_gender(); 727. #ifdef POLYSELF 728. #ifdef GOLEMS 729. E void ugolemeffects P((int, int)); 730. #endif /* GOLEMS */ 731. #endif 732. 733. /* ### potion.c ### */ 734. 735. E void make_confused P((long,boolean)); 736. E void make_stunned P((long,boolean)); 737. E void make_blinded P((long,boolean)); 738. E void make_sick P((long,boolean)); 739. E void make_hallucinated P((long,boolean)); 740. E int dodrink(); 741. E int dopotion P((struct obj *)); 742. E int peffects P((struct obj *)); 743. E void healup P((int,int,boolean,boolean)); 744. E void strange_feeling P((struct obj *,char *)); 745. E void potionhit P((struct monst *,struct obj *)); 746. E void potionbreathe P((struct obj *)); 747. E int dodip(); 748. E void djinni_from_bottle P((struct obj *)); 749. E int monster_detect P((struct obj *)); 750. E int object_detect P((struct obj *)); 751. 752. /* ### pray.c ### */ 753. 754. # ifdef THEOLOGY 755. E int dosacrifice(); 756. E int dopray(); 757. E char *u_gname(); 758. #endif 759. E int doturn(); 760. #ifdef ALTARS 761. E char *a_gname(); 762. E char *a_gname_at P((xchar,xchar)); 763. # ifdef THEOLOGY 764. E void altar_wrath P((int,int)); 765. # endif 766. #endif 767. 768. /* ### pri.c ### */ 769. 770. E void swallowed(); 771. E void setclipped(); 772. E void at P((xchar,xchar,uchar,uchar)); 773. E void prme(); 774. E void shieldeff P((xchar,xchar)); 775. E int doredraw(); 776. E void docrt(); 777. E void docorner P((int,int)); 778. E void seeglds(); 779. E void seeobjs(); 780. E void seemons(); 781. E void pmon P((struct monst *)); 782. E void unpmon P((struct monst *)); 783. E void nscr(); 784. E void bot(); 785. E void mstatusline P((struct monst *)); 786. E void ustatusline(); 787. E void cls(); 788. E void max_rank_sz(); 789. E char rndmonsym(); 790. E char rndobjsym(); 791. E const char *hcolor(); 792. 793. /* ### priest.c ### */ 794. 795. E int move_special P((struct monst *,schar,schar,boolean,boolean, 796. xchar,xchar,xchar,xchar)); 797. #if defined(ALTARS) && defined(THEOLOGY) 798. E struct mkroom *in_temple P((int,int)); 799. E int pri_move P((struct monst *)); 800. E void priestini P((int,int,int,int)); 801. E char *priestname P((struct monst *)); 802. E boolean p_coaligned P((struct monst *)); 803. E void intemple(); 804. E void priest_talk P((struct monst *)); 805. E boolean u_in_sanctuary P((struct mkroom *)); 806. E void ghod_hitsu(); 807. E void angry_priest(); 808. #endif 809. 810. /* ### prisym.c ### */ 811. 812. E void atl P((int,int,char)); 813. E void on_scr P((int,int)); 814. E void tmp_at P((int,int)); 815. E void Tmp_at2 P((int,int)); 816. E void curs_on_u(); 817. E void pru(); 818. E void prl P((int,int)); 819. E uchar news0 P((xchar,xchar)); 820. E void newsym P((int,int)); 821. E void mnewsym P((int,int)); 822. E void nosee P((int,int)); 823. E void prl1 P((int,int)); 824. E void nose1 P((int,int)); 825. E int vism_at P((int,int)); 826. #ifdef NEWSCR 827. E void pobj P((struct obj *)); 828. #endif /* NEWSCR */ 829. E void unpobj P((struct obj *)); 830. 831. /* ### read.c ### */ 832. 833. E int doread(); 834. E int seffects P((struct obj *)); 835. E int identify P((struct obj *)); 836. E void litroom P((boolean)); 837. E void do_genocide P((int)); 838. E void do_mapping(); 839. E void do_vicinity_map(); 840. E int destroy_arm P((struct obj *)); 841. E int trap_detect P((struct obj *)); 842. E int gold_detect P((struct obj *)); 843. E int food_detect P((struct obj *)); 844. E void punish P((struct obj *)); 845. E void unpunish(); 846. E boolean cant_create P((int *)); 847. #if defined(WIZARD) || defined(EXPLORE_MODE) 848. E boolean create_particular(); 849. #endif 850. 851. /* ### restore.c ### */ 852. 853. E int dorecover P((int)); 854. E void getlev P((int,int,xchar,boolean)); 855. #ifdef ZEROCOMP 856. E void minit(); 857. E int mread P((int,genericptr_t,unsigned int)); 858. #else 859. E void mread P((int,genericptr_t,unsigned int)); 860. #endif 861. 862. /* ### rip.c ### */ 863. 864. E void outrip(); 865. 866. /* ### rnd.c ### */ 867. 868. E int rn1 P((int,int)); 869. E int rn2 P((int)); 870. E int rnl P((int)); 871. E int rnd P((int)); 872. E int d P((int,int)); 873. E int rne P((int)); 874. #ifdef THEOLOGY 875. E int rnz P((int)); 876. #endif 877. 878. /* ### rumors.c ### */ 879. 880. E void outrumor P((int,boolean)); 881. #ifdef ORACLE 882. E int doconsult P((struct monst *)); 883. #endif 884. 885. /* ### save.c ### */ 886. 887. E int dosave(); 888. #ifndef NOSAVEONHANGUP 889. E int hangup(); 890. #endif /* NOSAVEONHANGUP */ 891. E int dosave0(); 892. #if defined(DGK) && !defined(TOS) 893. E boolean savelev P((int,xchar,int)); 894. E boolean swapin_file P((int)); 895. #else /* DGK && !TOS */ 896. E void savelev P((int, xchar)); 897. #endif /* DGK && !TOS */ 898. #ifdef ZEROCOMP 899. E void bflush P((int)); 900. #endif 901. E void bwrite P((int,genericptr_t,unsigned int)); 902. E void savefruitchn P((int)); 903. 904. /* ### search.c ### */ 905. 906. E int findit(); 907. E int dosearch(); 908. E int dosearch0 P((int)); 909. E int doidtrap(); 910. E void wakeup P((struct monst *)); 911. E void seemimic P((struct monst *)); 912. 913. /* ### shk.c ### */ 914. 915. E char *shkname P((struct monst *)); 916. E void shkdead P((struct monst *)); 917. E void replshk P((struct monst *,struct monst *)); 918. E int inshop(); 919. E int inhishop P((struct monst *)); 920. E void obfree P((struct obj *,struct obj *)); 921. E int dopay(); 922. E void home_shk P((struct monst *)); 923. E void make_happy_shk P((struct monst *)); 924. E boolean paybill(); 925. E void pay_for_door P((int,int,char *)); 926. E void addtobill P((struct obj *,boolean)); 927. E void splitbill P((struct obj *,struct obj *)); 928. E void subfrombill P((struct obj *)); 929. E int doinvbill P((int)); 930. E int shkcatch P((struct obj *)); 931. E int shk_move P((struct monst *)); 932. E int online P((xchar,xchar)); 933. E boolean is_fshk P((struct monst *)); 934. E void shopdig P((int)); 935. E boolean in_shop P((int,int)); 936. E boolean costly_spot P((int,int)); 937. E void check_unpaid P((struct obj *)); 938. 939. /* ### shknam.c ### */ 940. 941. E void stock_room P((struct shclass *,struct mkroom *)); 942. E int saleable P((int,struct obj *)); 943. E int get_shop_item P((int)); 944. 945. /* ### sit.c ### */ 946. 947. #if defined(THRONES) || defined(SPELLS) 948. E void take_gold(); 949. #endif 950. E int dosit(); 951. E void rndcurse(); 952. E void attrcurse(); 953. 954. /* ### sp_lev.c ### */ 955. 956. #ifdef STRONGHOLD 957. E boolean load_special P((char *)); 958. #endif /* STRONGHOLD /**/ 959. 960. /* ### sounds.c ### */ 961. 962. E void verbalize P((char *)); 963. #ifdef SOUNDS 964. E void dosounds(); 965. E void growl P((struct monst *)); 966. E void yelp P((struct monst *)); 967. E void whimper P((struct monst *)); 968. #endif 969. E int dotalk(); 970. 971. /* ### spell.c ### */ 972. 973. #ifdef SPELLS 974. E int study_book P((struct obj *)); 975. E int docast(); 976. E int spelleffects P((int, boolean)); 977. E void losespells(); 978. E int dovspell(); 979. #endif /* SPELLS */ 980. 981. /* ### steal.c ### */ 982. 983. E long somegold(); 984. E void stealgold P((struct monst *)); 985. E int steal P((struct monst *)); 986. E void mpickobj P((struct monst *,struct obj *)); 987. E void stealamulet P((struct monst *)); 988. E void relobj P((struct monst *,int)); 989. 990. /* ### termcap.c ### */ 991. 992. E void startup(); 993. E void start_screen(); 994. E void end_screen(); 995. E void curs P((int,int)); 996. E void cmov P((int,int)); 997. E void xputc P((char)); 998. E void xputs P((char *)); 999. E void cl_end(); 1000. E void clear_screen(); 1001. E void home(); 1002. E void standoutbeg(); 1003. E void standoutend(); 1004. E void revbeg(); 1005. #if 0 1006. E void boldbeg(); 1007. E void blinkbeg(); 1008. E void dimbeg(); 1009. #endif 1010. E void m_end(); 1011. E void backsp(); 1012. E void bell(); 1013. E void graph_on(); 1014. E void graph_off(); 1015. E void delay_output(); 1016. E void cl_eos(); 1017. 1018. /* ### timeout.c ### */ 1019. 1020. E void timeout(); 1021. E void hatch_eggs(); 1022. 1023. /* ### topl.c ### */ 1024. 1025. E int doredotopl(); 1026. E void remember_topl(); 1027. E void addtopl P((char *)); 1028. E void more(); 1029. E void cmore P((char *)); 1030. E void clrlin(); 1031. E void pline P((const char *,...)); 1032. E void You P((const char *,...)); 1033. E void Your P((const char *,...)); 1034. E void putsym P((char)); 1035. E void putstr P((char *)); 1036. E char yn_function P((char *,char)); 1037. 1038. /* ### topten.c ### */ 1039. 1040. E void topten(); 1041. E char *eos P((char *)); 1042. E void prscore P((int,char **)); 1043. E struct obj *tt_oname P((struct obj *)); 1044. 1045. /* ### track.c ### */ 1046. 1047. E void initrack(); 1048. E void settrack(); 1049. E coord *gettrack P((int,int)); 1050. 1051. /* ### trap.c ### */ 1052. 1053. E boolean rust_dmg P((struct obj *,char *,int,boolean)); 1054. E struct trap *maketrap P((int,int,int)); 1055. E int teleok P((int,int)); 1056. E void dotrap P((struct trap *)); 1057. E int mintrap P((struct monst *)); 1058. E void selftouch P((char *)); 1059. E void float_up(); 1060. E int float_down(); 1061. E void tele(); 1062. E void teleds P((int,int)); 1063. E int dotele(); 1064. E void placebc P((int)); 1065. E void unplacebc(); 1066. E void level_tele(); 1067. E void drown(); 1068. #ifdef SPELLS 1069. E void drain_en P((int)); 1070. #endif 1071. E int dountrap(); 1072. E void chest_trap P((struct obj *,int)); 1073. E void wake_nearby(); 1074. E void deltrap P((struct trap *)); 1075. E struct trap *t_at P((int,int)); 1076. E void b_trapped(); 1077. E boolean unconscious(); 1078. 1079. /* ### u_init.c ### */ 1080. 1081. E void u_init(); 1082. E void plnamesuffix(); 1083. 1084. /* ### uhitm.c ### */ 1085. 1086. E struct monst *clone_mon P((struct monst *)); 1087. E boolean special_case P((struct monst *)); 1088. E boolean attack P((struct monst *)); 1089. E boolean hmon P((struct monst *,struct obj *,int)); 1090. 1091. /* ### unixmain.c ### */ 1092. 1093. #ifdef UNIX 1094. E int (*occupation)(); 1095. E int (*afternmv)(); 1096. E void glo P((int)); 1097. E void askname(); 1098. E void impossible P((char *,...)); 1099. E void stop_occupation(); 1100. #endif /* UNIX */ 1101. 1102. /* ### unixtty.c ### */ 1103. 1104. #ifdef UNIX 1105. E void gettty(); 1106. E void settty P((char *)); 1107. E void setftty(); 1108. E void intron(); 1109. E void introff(); 1110. E void error P((char *, char *, char *)); 1111. #endif /* UNIX */ 1112. 1113. /* ### unixunix.c ### */ 1114. 1115. #ifdef UNIX 1116. E void setrandom(); 1117. E int getyear(); 1118. E char *getdate(); 1119. E int phase_of_the_moon(); 1120. E int night(); 1121. E int midnight(); 1122. E void gethdate P((char *)); 1123. E int uptodate P((int)); 1124. E void getlock(); 1125. #ifdef MAIL 1126. E void getmailstatus(); 1127. E void ckmailstatus(); 1128. E void readmail(); 1129. #endif /* MAIL */ 1130. E void regularize P((char *)); 1131. #endif /* UNIX */ 1132. 1133. /* ### vault.c ### */ 1134. 1135. E void setgd(); 1136. E void invault(); 1137. E int gd_move(); 1138. E void gddead(); 1139. E void replgd P((struct monst *,struct monst *)); 1140. E void paygd(); 1141. 1142. /* ### version.c ### */ 1143. 1144. E int doversion(); 1145. 1146. /* ### weapon.c ### */ 1147. 1148. E int hitval P((struct obj *,struct permonst *)); 1149. E int dmgval P((struct obj *,struct permonst *)); 1150. E void set_uasmon(); 1151. E struct obj *select_rwep P((struct monst *)); 1152. E struct obj *select_hwep P((struct monst *)); 1153. E int abon(); 1154. E int dbon(); 1155. 1156. /* ### were.c ### */ 1157. 1158. E void were_change P((struct monst *)); 1159. E void new_were P((struct monst *)); 1160. E boolean were_summon P((struct permonst *,boolean)); 1161. #ifdef POLYSELF 1162. E void you_were(); 1163. #endif /* POLYSELF */ 1164. 1165. /* ### wield.c ### */ 1166. 1167. E void setuwep P((struct obj *)); 1168. E void uwepgone(); 1169. E int dowield(); 1170. E void corrode_weapon(); 1171. E int chwepon P((struct obj *,int)); 1172. E int welded P((struct obj *)); 1173. E void weldmsg P((struct obj *,boolean)); 1174. 1175. /* ### wizard.c ### */ 1176. 1177. E void amulet(); 1178. E int mon_has_amulet P((struct monst *)); 1179. E int wiz_get_amulet P((struct monst *)); 1180. E void aggravate(); 1181. E void clonewiz(); 1182. #ifdef HARD 1183. E void nasty(); 1184. E void resurrect(); 1185. E void intervene(); 1186. E void wizdead P((struct monst *)); 1187. #endif /* HARD */ 1188. E void cuss P((struct monst *)); 1189. 1190. /* ### worm.c ### */ 1191. 1192. #ifdef WORM 1193. E int getwn P((struct monst *)); 1194. E void initworm P((struct monst *)); 1195. E void worm_move P((struct monst *)); 1196. E void worm_nomove P((struct monst *)); 1197. E void wormdead P((struct monst *)); 1198. E void wormhit P((struct monst *)); 1199. E void wormsee P((unsigned int)); 1200. E void cutworm P((struct monst *,xchar,xchar,uchar)); 1201. #endif /* WORM */ 1202. 1203. /* ### worn.c ### */ 1204. 1205. E void setworn P((struct obj *,long)); 1206. E void setnotworn P((struct obj *)); 1207. 1208. /* ### write.c ### */ 1209. 1210. E void dowrite P((struct obj *)); 1211. 1212. /* ### zap.c ### */ 1213. 1214. E struct monst *revive P((struct obj *,boolean)); 1215. E int zappable P((struct obj *)); 1216. E void zapnodir P((struct obj *)); 1217. E int dozap(); 1218. E int zapyourself P((struct obj *)); 1219. E void weffects P((struct obj *)); 1220. E char *exclam P((int)); 1221. E void hit P((char *,struct monst *,char *)); 1222. E void miss P((char *,struct monst *)); 1223. E struct monst *bhit P((int,int,int,char,int(*)(),int(*)(),struct obj *)); 1224. E struct monst *boomhit P((int,int)); 1225. E void buzz P((int,int,xchar,xchar,int,int)); 1226. E void rloco P((struct obj *)); 1227. E void fracture_rock P((struct obj *)); 1228. E boolean break_statue P((struct obj *)); 1229. E void destroy_item P((int,int)); 1230. E int destroy_mitem P((struct monst *,int,int)); 1231. E int resist P((struct monst *,char,int,int)); 1232. E void makewish(); 1233. 1234. #undef E 1235. 1236. #endif /* EXTERN_H /**/ extern.h